/******************************************************************************
* 文件名称: memory.h
* 内容摘要: 内存管理头文件
* 创建者の: 孔佳伟
* 个人主页: https://gitee.com/thin-wind/jump
* 修改记录: 
******************************************************************************/

#ifndef __MEMORY_H_
#define __MEMORY_H_

#ifdef __cplusplus
extern "C" {
#endif

#include <common.h>

/******************************************************************************
* 函数名称: E_RET MemInit(U08* mem, U32 size)
* 功能说明: 内存管理初始化
* 输入参数: U08* mem        --内存基址
    　　　　U32 size        --内存长度
* 输出参数: 无
* 函数返回: E_OK:成功; E_ERR:失败
* 其它说明: 无
******************************************************************************/
E_RET MemInit(U08* mem, U32 size);

/******************************************************************************
* 函数名称: void* Malloc(U32 size)
* 功能说明: 内存申请
* 输入参数: U32 size        --要申请的内存大小
* 输出参数: 无
* 函数返回: void*           --申请到的内存首地址
* 其它说明: 判断申请内存大小是否大于 32 字节，若不大于 32 字节，则使用定长内存申请，
           若大于 32 字节，则使用变长内存申请
******************************************************************************/
void* Malloc(U32 size);

/******************************************************************************
* 函数名称: Free(void* ptr)
* 功能说明: 内存释放
* 输入参数: void* ptr       --要释放的内存首地址
* 输出参数: 无
* 函数返回: E_OK:成功; E_ERR:失败
* 其它说明: 先尝试定长内存释放，定长内存释放不成功再尝试变长内存释放
******************************************************************************/
E_RET Free(void* ptr);


#ifdef __cplusplus
}
#endif

#endif

